/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// SN -- Νέα συνεδρία
//
// Δεδομένα
//
//	sinedria	Είναι αντικείμενο που περιέχει τα στοιχεία της προς
//			ένταξιν συνεδρίας.

Skiniko.prototype.processKinisiAnteSN = function(data) {
	var sinedria;

	sinedria = this.skinikoSinedriaGet(data.sinedria.pektis);
	if (!sinedria) return this;

	sinedria.sinedriaDeleteDOM();
	return this;
};

Skiniko.prototype.processKinisiPostSN = function(data) {
	var sinedria;

	sinedria = this.skinikoSinedriaGet(data.sinedria.pektis);
	if (!sinedria) return this;

	sinedria.sinedriaCreateDOM();
	this.pektisEntopismosDOM(data.sinedria.pektis);
	if (Kafenio.oxiTsoxa()) return this;

	// Ο παίκτης μόλις έχει εισέλθει στο καφενείο, επομένως η μόνη περίπτωση
	// να επηρεάζει την τσόχα μας είναι να κατέχει θέση παίκτη σ' αυτήν.

	if (Tsoxa.trapezi.trapeziOxiPektis(data.sinedria.pektis)) return this;

	// Διαπιστώσμαε ότι ο νεοεισερχόμενος παίκτης κατέχει θέση παίκτη στην
	// τσόχα μας.

	Tsoxa.trapeziRefreshDOM();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// NS -- Διαγραφή συνεδρίας
//
// Δεδομένα
//
//	login		Είναι το login name του παίκτη τής προς διαγραφήν συνεδρίας.

Skiniko.prototype.processKinisiAnteNS = function(data) {
	var sinedria, dom;

	sinedria = this.skinikoSinedriaGet(data.login);
	if (!sinedria) return this;

	sinedria.
	sinedriaDeleteDOM().
	sinedriaTheatisDeleteDOM();
	if (Kafenio.oxiTsoxa()) return this;

	// Ελέγχω αν ο εξερχόμενος είναι θεατής στην τσόχα μας.

	if (sinedria.sinedriaOxiTheatis()) return this;
	if (Tsoxa.oxiTrapezi(sinedria.sinedriaTrapeziGet())) return this;

	// Ο εξερχόμενος είναι μάλλον θεατής στην τσόχα μας, επομένως πρέπει
	// να τον διαγράψω από τους θεατές της τσόχας.

	dom = sinedria.sinedriaTsoxaTheatisGetDOM();
	if (!dom) return this;

	dom.remove();
	return this;
};

Skiniko.prototype.processKinisiPostNS = function(data) {
	this.pektisEntopismosDOM(data.login);
	if (Kafenio.oxiTsoxa()) return this;

	// Ελέγχω αν ο εξελθών παίκτης κατέχει θέση παίκτη στην
	// τσόχα μας.

	if (Tsoxa.trapezi.trapeziOxiPektis(data.login)) return this;

	// Ο εξελθών παίκτης κατέχει θέση παίκτη στην τσόχα μας.

	Tsoxa.trapeziRefreshDOM();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// TR -- Νέο τραπέζι
//
// Δεδομένα
//
//	trapezi		Τα στοιχεία του τραπεζιού (object).

Skiniko.prototype.processKinisiAnteTR = function(data) {
	this.skinikoTheatisDeleteDOM(data.trapezi.pektis1);
	// Παράγουμε ήχο μόνο στην περίπτωση που το τραπέζι δημιουργήθηκε
	// από άλλον παίκτη και όχι από εμάς, καθώς όταν είμαστε εμείς που
	// δημιουργούμε το τραπέζι παραλαμβάνουμε και πρόσκληση η οποία θα
	// δημιουργήσει παρόμοιο ηχητικό σήμα.
	if (data.trapezi.pektis1.oxiEgo()) Client.sound.trapeziNeo();
	return this;
};

Skiniko.prototype.processKinisiPostTR = function(data) {
	var trapezi, pektis = data.trapezi.pektis1, thesi;

	trapezi = this.skinikoTrapeziGet(data.trapezi.kodikos);
	if (!trapezi) return this;

	trapezi.trapeziCreateDOM();
	this.pektisEntopismosDOM(pektis);

	if (pektis.isEgo()) {
		this.pektisTrapeziScroll(true);
		Kafenio.panelRefresh();
		if (Kafenio.isTsoxa()) Tsoxa.refreshDOM();
		return this;
	}

	if (Kafenio.oxiTsoxa()) return this;

	// Αν ο δημιουργός μετείχε ως θεατής στην τσόχα μας, έχουν γίνει
	// ήδη όλες οι απαραίτητες ενέργειες στο ante. Μας ενδιαφέρει
	// μόνο η περίπτωση κατά την οποία συμμετέχει ως παίκτης στην
	// τσόχα μας.

	thesi = Tsoxa.trapezi.trapeziThesiPekti(pektis);
	if (thesi) Tsoxa.pektisDataRefreshDOM(thesi);

	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// ET -- Επιλογή τραπεζιού
//
// Δεδομένα
//
//	pektis		Login name παίκτη.
//	trapezi		Κωδικός τραπεζιού.
//
// Επιπρόσθετα δεδομένα
//
//	prin.trapezi	Προηγούμενο τραπέζι παίκτη.
//	prin.thesi	Προηγούμενη θέση παίκτη.
//	prin.simetoxi	Προηγούμενη συμμετοχή παίκτη.

Skiniko.prototype.processKinisiAnteET = function(data) {
	var sinedria;

	this.skinikoTheatisDeleteDOM(data.pektis);
	sinedria = this.skinikoSinedriaGet(data.pektis);
	if (!sinedria) return this;

	data.prin = {
		trapezi: sinedria.sinedriaTrapeziGet(),
		thesi: sinedria.sinedriaThesiGet(),
		simetoxi: sinedria.sinedriaSimetoxiGet(),
	};
	return this;
};

Skiniko.prototype.processKinisiPostET = function(data) {
	var trapezi, trapeziKodikos, sinedria, thesi;

	sinedria = this.skinikoSinedriaGet(data.pektis);
	if (!sinedria) return this;

	if (sinedria.sinedriaIsTrapezi(data.prin.trapezi) &&
	(sinedria.sinedriaThesiGet() == data.prin.thesi) &&
	(sinedria.sinedriaSimetoxiGet() == data.prin.simetoxi)) return this;

	this.pektisEntopismosDOM(data.pektis);
	Kafenio.panelRefresh();
	if (data.pektis.isEgo()) Client.sound.tik();
	if (Kafenio.oxiTsoxa()) return this;

	data.trapezi = sinedria.sinedriaTrapeziGet();
	if (data.trapezi == data.prin.trapezi) return this;

	if (data.pektis.isEgo()) {
		Tsoxa.refreshDOM();
		return this;
	}

	// Εξετάζουμε πρώτα την περίπτωση κατά την οποία ο παίκτης αφίχθη
	// στο τραπέζι της τσόχας.

	if (Tsoxa.isTrapezi(data.trapezi)) {
		if (sinedria.sinedriaIsPektis()) {
			Tsoxa.pektisDataRefreshDOM(sinedria.sinedriaThesiGet());
			return this;
		}

		sinedria.sinedriaTsoxaTheatisCreateDOM();
		return this;
	}

	// Θα εξετάσουμε τώρα την περίπτωση κατά την οποία ο παίκτης κατέχει
	// θέση παίκτη στην τσόχα μας.

	thesi = Tsoxa.trapezi.trapeziThesiPekti(data.pektis);
	if (thesi) {
		Tsoxa.pektisDataRefreshDOM(thesi);
		return this;
	}

	// Ο παίκτης δεν αφίχθη στην τσόχα μας ούτε κατέχει θέση παίκτη στην
	// τσόχα μας. Μένει να εξετάσουμε αν αποχώρησε από την τσόχα μας.

	if (Tsoxa.oxiTrapezi(data.prin.trapezi)) return this;

	// Ο παίκτης αποχώρησε μόλις από την τσόχα μας.
	// Αν παρευρίσκετο ως θεατής έχουν γίνει ήδη οι απαραίτητες ενέργειες.

	if (data.prin.simetoxi.isTheatis()) return this;

	// Ο παίκτης παρευρίσκετο ως παίκτης στην τσόχα μας.

	if (Prefadoros.isThesi(data.prin.thesi)) Tsoxa.pektisDataRefreshDOM(data.prin.thesi);

	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// RT -- Έξοδος από τραπέζι
//
// Δεδομένα
//
//	pektis		Login name παίκτη.
//
// Επιπρόσθετα δεδομένα
//
//	trapezi		Το τραπέζι.
//	tsoxaPektis	True εφόσον ο εξερχόμενος είναι παίκης στην τσόχα μας.

Skiniko.prototype.processKinisiAnteRT = function(data) {
	var sinedria, trapezi, egoTrapezi;

	sinedria = this.skinikoSinedriaGet(data.pektis);
	if (!sinedria) return this;

	trapezi = this.skinikoTrapeziGet(sinedria.sinedriaTrapeziGet());
	if (!trapezi) return this;

	data.trapezi = trapezi;
	egoTrapezi = Kafenio.egoTrapezi();
	if (!egoTrapezi) return this;

	data.tsoxaPektis = egoTrapezi.trapeziIsPektis(data.pektis);
	return this;
};

Skiniko.prototype.processKinisiPostRT = function(data) {
	var trapezi, trapeziKodikos;

	if (data.trapezi) data.trapezi.trapeziCreateDOM();

	this.pektisEntopismosDOM(data.pektis);
	Kafenio.panelRefresh();
	if (data.pektis.isEgo()) Client.sound.bop();
	if (Kafenio.oxiTsoxa()) return this;

	if (data.pektis.isEgo()) {
		Kafenio.tsoxaClose();
		return this;
	}

	// Εξετάζουμε την περίπτωση κατά την οποία ο εξερχόμενος κατέχει θέση
	// παίκτη στην τσόχα μας.

	if (data.tsoxaPektis) {
		Tsoxa.trapeziRefreshDOM();
		return this;
	}

	// Εξετάζουμε αν ο παίκτης αποχώρησε από την τσόχα μας όπου παρευρίσκετο
	// ως θεατής.

	if (Tsoxa.oxiTrapezi(data.trapezi)) return this;

	Tsoxa.theatesRefreshDOM();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// PL -- Πρόσκληση
//
// Δεδομένα
//
//	kodikos		Κωδικός πρόσκλησης.
//	trapezi		Κωδικός τραπεζιού.
//	apo		Login name αποσοτολέα.
//	pros		Login name παραλήπτη.

// Εντοπίζουμε τυχόν προηγούμενη παρόμοια πρόσκληση, δηλαδή πρόσκληση από τον
// ίδιο αποστολέα, προς τον ίδιο παραλήπτη και για το ίδιο τραπέζι. Αν βρεθεί
// τέτοια πρόσκληση τη διαγράφουμε.

Skiniko.prototype.processKinisiAntePL = function(data) {
	var kodikos, prosklisi;

	for (kodikos in this.prosklisi) {
		prosklisi = this.skinikoProsklisiGet(kodikos);
		if (prosklisi.prosklisiTrapeziGet() != data.trapezi) continue;
		if (prosklisi.prosklisiApoGet() != data.apo) continue;
		if (prosklisi.prosklisiProsGet() != data.pros) continue;

		// Η ανά χείρας πρόσκληση είναι παρόμοια επομένως τη διαγράφουμε
		// από το DOM.

		prosklisi.prosklisiGetDOM().remove();
	}

	return this;
};

// Η νέα πρόσκληση έχει ενταχθεί στο σκηνικό και το μόνο που μένει είναι να
// την εμφανίσουμε εντάσσοντάς την στο DOM.

Skiniko.prototype.processKinisiPostPL = function(data) {
	var prosklisi, apo;

	prosklisi = this.skinikoProsklisiGet(data.kodikos);
	if (!prosklisi) return this;

	apo = prosklisi.prosklisiApoGet();
	if (apo.isEgo()) Client.sound.klak();
	else if (Kafenio.isFilos(apo)) Client.sound.sfirigma();
	else Client.sound.psit();

	prosklisi.prosklisiCreateDOM();
	Kafenio.panelRefresh();
	if (Kafenio.oxiTsoxa()) return this;

	if (prosklisi.prosklisiProsGet().oxiEgo()) return this;
	if (Tsoxa.oxiTrapezi(prosklisi.prosklisiTrapeziGet())) return this;

	Tsoxa.panelRefresh();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// DL -- Πρόσκληση
//
// Δεδομένα
//
//	kodikos		Κωδικός πρόσκλησης.
//
// Πρόσθετα δεδομένα
//
//	pros		Login name προσκεκλημένου.
//	trapezi		Κωδικός τραπεζιού.

Skiniko.prototype.processKinisiAnteDL = function(data) {
	var prosklisi = this.skinikoProsklisiGet(data.kodikos);
	if (!prosklisi) return this;

	data.pros = prosklisi.prosklisiProsGet();
	data.trapezi = prosklisi.prosklisiTrapeziGet();
	prosklisi.prosklisiDeleteDOM();
	return this;
};

Skiniko.prototype.processKinisiPostDL = function(data) {
	Kafenio.panelRefresh();
	if (Kafenio.oxiTsoxa()) return this;

	if (!data.pros) return this;
	if (!data.trapezi) return this;
	if (data.pros.oxiEgo()) return this;
	if (Kafenio.egoOxiTrapezi(data.trapezi)) return this;

	Tsoxa.panelRefresh();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// AL -- Αποδοχή πρόσκλησης
//
// Δεδομένα
//
//	pektis		Login name προσκεκλημένου.
//	trapezi		Κωδικός τραπεζιού.
//	thesi		Θέση παίκτη/θεατή.
//	simetoxi	Παίκτης ή θεατής.
//
// Επιπρόσθετα δεδομένα
//
//	prin.trapezi	Προηγούμενο τραπέζι παίκτη.
//	prin.thesi	Προηγούμενη θέση παίκτη.
//	prin.simetoxi	Προηγούμενη συμμετοχή παίκτη.

Skiniko.prototype.processKinisiAnteAL = function(data) {
	var sinedria;

	this.skinikoTheatisDeleteDOM(data.pektis);
	sinedria = this.skinikoSinedriaGet(data.pektis);
	if (!sinedria) return this;

	data.prin = {
		trapezi: sinedria.sinedriaTrapeziGet(),
		thesi: sinedria.sinedriaThesiGet(),
		simetoxi: sinedria.sinedriaSimetoxiGet(),
	};
	return this;
};

Skiniko.prototype.processKinisiPostAL = function(data) {
	var sinedria, trpapezi, thesi;

	sinedria = this.skinikoSinedriaGet(data.pektis);
	if (!sinedria) return this;

	if (sinedria.sinedriaIsTrapezi(data.prin.trapezi) &&
	(sinedria.sinedriaThesiGet() == data.prin.thesi) &&
	(sinedria.sinedriaSimetoxiGet() == data.prin.simetoxi)) return this;

	trapezi = this.skinikoTrapeziGet(data.trapezi);
	if (trapezi) trapezi.trapeziCreateDOM();

	this.pektisEntopismosDOM(data.pektis);
	Kafenio.panelRefresh();
	if (data.pektis.isEgo()) this.pektisTrapeziScroll(true);
	else if (Kafenio.egoIsTrapezi(data.trapezi)) Client.sound.doorbell();

	if (Kafenio.oxiTsoxa()) return this;

	if (data.pektis.isEgo()) {
		// Αν η τσόχα μας αφορά σε προηγούμενο τραπέζι την ανανεώνω
		// στο τρέχον τραπέζι.

		if (Tsoxa.oxiTrapezi(trapezi)) {
			Tsoxa.refreshDOM();
			return this;
		}

		// Η τσόχα μας αφορά στο τρέχον τραπέζι, επομένως ανανεώνουμε
		// μόνο τα στοιχεία που αφορούν στο είδος της συμμετοχής μας
		// σ' αυτήν.

		Tsoxa.
		theatesRefreshDOM().
		trapeziRefreshDOM().
		panelRefresh();
		return this;
	}

	// Εξετάζουμε την περίπτωση κατά την οποία ο παίκτης αφίχθη στο τραπέζι
	// της τσόχας.

	if (Tsoxa.isTrapezi(data.trapezi)) {
		if (sinedria.sinedriaIsPektis()) {
			Tsoxa.pektisDataRefreshDOM(sinedria.sinedriaThesiGet());
			return this;
		}

		sinedria.sinedriaTsoxaTheatisCreateDOM();
		return this;
	}

	// Ο παίκτης πιθανόν να έχει αποχωρήσει από το τραπέζι της τσόχας, οπότε
	// εξετάζουμε την περίπτωση κατά την οποία ο παίκτης κατέχει θέση παίκτη
	// στην τσόχα μας.

	thesi = Tsoxa.trapezi.trapeziThesiPekti(data.pektis);
	if (thesi) Tsoxa.pektisDataRefreshDOM(thesi);

	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// PT -- Από παίκτης θεατής
//
// Δεδομένα
//
//	pektis		Login name παίκτη.
//	trapezi		Κωδικός τραπεζιού.
//	thesi		Θέση θέασης.

Skiniko.prototype.processKinisiPostPT = function(data) {
	var trapezi, sinedria;

	trapezi = this.skinikoTrapeziGet(data.trapezi);
	if (trapezi) trapezi.trapeziCreateDOM();
	this.pektisEntopismosDOM(data.pektis);
	Kafenio.panelRefresh();
	if (Kafenio.oxiTsoxa()) return this;

	// Εξετάζω την περίπτωση να είμαι εγώ που γίνομαι από
	// παίκτης θεατής.

	if (data.pektis.isEgo()) {
		Tsoxa.
		trapeziRefreshDOM().
		panelRefresh();
		Kafenio.ego.sinedriaTsoxaTheatisCreateDOM();
		Client.sound.klak();
		return this;
	}

	// Εξετάζουμε αν ο παίκτης έγινε θεατής στη δικιά μας
	// τσόχα.

	if (Tsoxa.isTrapezi(data.trapezi)) {
		Tsoxa.pektisDataRefreshDOM();

		sinedria = this.skinikoSinedriaGet(data.pektis);
		if (!sinedria) return this;

		sinedria.sinedriaTsoxaTheatisCreateDOM();
		return this;
	}

	// Ο παίκτης που έγινε θεατής δεν έγινε θεατής στο δικό
	// μας τραπέζι, ωστόσο μπορεί να κατέχει θέση παίκτη στην
	// τσόχα μας και θα πρέπει να δείξουμε το γεγονός ότι αυτή
	// τη στιγμή είναι θεατής σε κάποιο άλλο τραπέζι. Εξετάζουμε,
	// λοιπόν, αν ο παίκτης/θεατής κατέχει θέση παίκτη στην τσόχα
	// μας.

	if (Tsoxa.trapezi.trapeziOxiPektis(data.pektis)) return this;

	Tsoxa.trapeziRefreshDOM();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// TS -- Παράμετρος τραπεζιού
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//	param		Ονομασία παραμέτρου.
//	timi		Τιμή παραμέτρου.

Skiniko.prototype.processKinisiPostTS = function(data) {
	var trapezi;

	trapezi = this.skinikoTrapeziGet(data.trapezi);
	if (!trapezi) return this;

	trapezi.trapeziCreateDOM();
	Kafenio.panelRefresh();
	if (Kafenio.oxiTsoxa()) return this;
	if (Kafenio.egoOxiTrapezi(data.trapezi)) return this;

	Tsoxa.
	trapeziRefreshDOM().
	panelRefresh();

	switch (data.param) {
	case 'ΚΑΣΑ':
		Client.sound.blioup();
		break;
	default:
		Client.sound.tic();
		break;
	}

	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// DX -- Αλλαγή διάταξης παικτών
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//	h1		Θέση παίκτη.
//	p1		Παίκτης για τη θέση h1.
//	h2		Θέση παίκτη.
//	p2		Παίκτης για τη θέση h2.

Skiniko.prototype.processKinisiPostDX = function(data) {
	var trapezi;

	trapezi = this.skinikoTrapeziGet(data.trapezi);
	if (!trapezi) return this;

	trapezi.trapeziCreateDOM();
	Kafenio.panelRefresh();
	if (Kafenio.oxiTsoxa()) return this;
	if (Tsoxa.oxiTrapezi(data.trapezi)) return this;

	Tsoxa.
	trapeziRefreshDOM();

	Client.sound.tic();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// RL -- Κυκλική εναλλαγή παικτών
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//	p1		Παίκτης για τη θέση 1.
//	a1		Αποδοχή για τη θέση 1.
//	p2		Παίκτης για τη θέση 2.
//	a2		Αποδοχή για τη θέση 2.
//	p3		Παίκτης για τη θέση 3.
//	a3		Αποδοχή για τη θέση 3.

Skiniko.prototype.processKinisiPostRL = function(data) {
	var trapezi;

	trapezi = this.skinikoTrapeziGet(data.trapezi);
	if (!trapezi) return this;

	trapezi.trapeziCreateDOM();
	Kafenio.panelRefresh();
	if (Kafenio.oxiTsoxa()) return this;
	if (Tsoxa.oxiTrapezi(data.trapezi)) return this;

	Tsoxa.
	trapeziRefreshDOM();

	Client.sound.tic();
	return this;
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// AX -- Αποδοχή/Επαναδιαπραγμάτευση όρων
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//	thesi		Θέση παίκτη που εκτελεί την ενέργεια.
//	apodoxi		ΝΑΙ = Αποδοχή, ΟΧΙ = Επαναδιαπραγμάτευση.

Skiniko.prototype.processKinisiPostAX = function(data) {
	var trapezi;

	trapezi = this.skinikoTrapeziGet(data.trapezi);
	if (!trapezi) return this;

	trapezi.trapeziCreateDOM();
	Kafenio.panelRefresh();
	if (Kafenio.oxiTsoxa()) return this;
	if (Tsoxa.oxiTrapezi(data.trapezi)) return this;

	Tsoxa.
	trapeziRefreshDOM().
	panelRefresh();

	Client.sound.tic();
	return this;
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// TT -- Αλλαγή θέσης θέασης
//
// Δεδομένα
//
//	pektis		Login name θεατή.
//	thesi		Νέα θέση θέασης.

Skiniko.prototype.processKinisiPostTT = function(data) {
	if (Kafenio.oxiTsoxa()) return this;
	if (data.pektis.oxiEgo()) return this;

	Tsoxa.
	trapeziRefreshDOM();

	Client.sound.stickhit();
	return this;
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// DN -- Νέα διανομή
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//	dianomi		Κωδικός διανομής.
//	dealer		Θέση dealer.
//	energia		Κωδικός ενέργειας διανομής.
//	fila		Data ενέργειας διανομής.

Skiniko.prototype.processKinisiPostDN = function(data) {
	if (Kafenio.oxiTsoxa()) return this;
	if (Kafenio.egoOxiTrapezi(data.trapezi)) return this;

	Tsoxa.
	trapeziRefreshDOM();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// SZ -- Σχόλιο συζήτησης
//
// Δεδομένα
//
//	kodikos		Κωδικός αριθμός σχολίου.
//	pektis		Login name παίκτη που κάνει το σχόλιο.
//	trapezi		Κωδικός τραπεζιού συζήτησης.
//	sxolio		Το σχόλιο αυτό καθαυτό.

Skiniko.prototype.processKinisiPostSZ = function(data) {
	var tsoxa, trapezi, sizitisi, xoros;

	// Τα σχόλια συζήτησης που αφορούν στο τραπέζι μεταφέρονται με τα
	// δεδομένα τσόχας και όχι μέσω κινήσεων.

	if (data.hasOwnProperty('trapezi')) {
		console.error('παρουσιάστηκαν μεταβολές τύπου "SZ" με συμπληρωμένο τραπέζι');
		return this;
	}

	sizitisi = this.skinikoSizitisiGet(data.kodikos);
	xoros = Kafenio;

	if (!sizitisi) return this;
	if (sizitisi.sizitisiPektisGet().isEgo())
	xoros.sizitisiProepiskopisiDOM.empty().removeClass('sizitisi');

	sizitisi.sizitisiCreateDOM(xoros);
	if (!xoros.sizitisiDOM.data('pagomeno')) xoros.sizitisiDOM.scrollKato();
	return this;
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// EG -- Ενέργεια
//
// Δεδομένα
//
//	kodikos		Κωδικός ενέργειας.
//	trapezi		Κωδικός τραπεζιού.
//	dianomi		Κωδικός διανομής.
//	pektis		Θέση ενεργούντος παίκτη.
//	data		Data ενέργειας.
//
// Οι ενέργειες μεταφέρονται με τα δεδομένα τσόχας και όχι μέσω κινήσεων,
// επομένως οποιαδήποτε εμφάνιση τέτοιου είδους μεταβολής σηματοδοτεί
// προγραμματιστικό σφάλμα.

Skiniko.prototype.processKinisiPostEG = function(data) {
	console.error('παρουσιάστηκαν μεταβολές τύπου "EG"');
	return this;
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// PD -- Πληρωμή διανομής
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//	dianomi		Κωδικός διανομής.
//	kasa1		Ποσό κάσας παίκτη θέσης 1.
//	metrita1	Μετρητά παίκτη θέσης 1.
//	kasa2		Ποσό κάσας παίκτη θέσης 2.
//	metrita2	Μετρητά παίκτη θέσης 2.
//	kasa3		Ποσό κάσας παίκτη θέσης 3.
//	metrita3	Μετρητά παίκτη θέσης 3.

Skiniko.prototype.processKinisiPostPD = function(data) {
	if (Kafenio.oxiTsoxa()) return this;
	if (Kafenio.egoOxiTrapezi(data.trapezi)) return this;

	Tsoxa.
	ipolipoRefreshDOM().
	pektisKapikiaRefreshDOM();
	return this;
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// AK -- Ακύρωση κινήσεων
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//
// Προαιρετικά
//
//	pektis		Login name του παίκτη
//	ecount		Πλήθος ενεργειών που απομένουν.

Skiniko.prototype.processKinisiPostAK = function(data) {
	if (Kafenio.oxiTsoxa()) return this;

	if (data.hasOwnProperty('ecount')) Tsoxa.trapeziRefreshDOM();
	else Tsoxa.dataKatoRefreshDOM();

	Tsoxa.cpanel.refresh();
	return this;
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// RC -- Reject claim
//
// Δεδομένα
//
//	trapezi		Κωδικός τραπεζιού.
//	dianomi		Κωδικός διανομής.
//	ecount		Πλήθος ενεργειών πριν το claim.

Skiniko.prototype.processKinisiPostRC = function(data) {
	if (Kafenio.oxiTsoxa()) return this;

	Tsoxa.
	trapeziRefreshDOM().
	panelRefresh();
	return this;
};
